#ifndef __LCG_MSG_H__
#define __LCG_MSG_H__
/*  
    日志消息模块
    日志消息类：用于进行日志中间消息的存储
            1.日志输出时间  用于过滤日志的输出时间
            2.日志等级  用于进行日志过滤分析
            3.源文件名称
            4.源代码行号  用于定位出现错误的代码位置
            5.线程ID 用于过滤出现错误的线程
            6.日志主体消息
            7.日志器名称 当前支持多日志器的同时使用
*/

#include "level.hpp"
#include "util.hpp"

#include <iostream>
#include <string>
#include <thread>
#include <ctime>

namespace lcglog{
    struct LogMsg{
        time_t _ctime;          //日志产生的时间戳
        size_t _line;           //行号
        std::thread::id _tid;   //线程ID
        LogLevel::value _level; //日志等级
        std::string _file;      //源码文件名
        std::string _payload;   //有效消息数据--有效载荷，日志主体消息
        std::string _logger;    //日志器名称

        LogMsg(LogLevel::value level, 
        size_t line, 
        const std::string file, 
        const std::string logger, 
        const std::string msg)
        :_level(level),
        _ctime(util::Date::now()),
        _line(line),
        _file(file),
        _logger(logger),
        _payload(msg),
        _tid(std::this_thread::get_id()){}

    };
}

#endif